Online websites, such as those selling books or DVDs, allow users/customers to search for particular products, e.g., books or music, by submitting search terms such as the title of a book, an author, a musical artist, or a topic of a book. A network application service associated with the website typically manages interactions between users and the website. For example, the network application service can receive a search query and retrieve information from a data store satisfying the search query. In some cases, recommendation information is also retrieved and returned. For example, some popular websites provide titles of books that others have selected after viewing the particular book requested by the user.
Typically, recommendation information is generated by a recommendation engine that operates independently from the network application service. In general, user activity data from multiple users is monitored, collected and stored separately from the data managed by the network application service. The collected user activity data is analyzed to produce the recommendation information for a specific user.
In most cases, the user activity data is stored separately from the data managed by the network application service. Unlike that data, which is stored in a manner that promotes search and retrieval, the user activity data is stored in a non-structured, flat manner, and therefore is not easily searchable. Moreover, the recommendation engine is not accessible by the user/customer. Accordingly, unlike the network application service, the recommendation engine does not allow the user/customer to submit a request for recommendation information. Rather, the recommendation information is unilaterally pushed to the user when the user triggers a certain action, e.g., selects a particular book.